package com.link.base.base.common.service;


import java.util.List;

/**
 * @author yipeng.zhu@hand-china.com
 * @version 1.0
 * @date: 13:54 2018/11/29
 */

public interface SendSmsService {
    /**
     * 发送短信
     * @author  yipeng.zhu@hand-china.com
     * @param templateCode   模板id
     * @param param   模板参数 json字符串
     * @param msgType 短信类型 可为空
     * @param phoneNumber 手机号
     * @return
     * @date   2018/11/30 14:45
     */
    String sendSms(String templateCode, String param, String msgType, String phoneNumber);

    /**
     * 阿里云短信发送平台
     * @author      yipeng.zhu@hand-china.com
     * @param       sendSms
     * @return
     * @exception
     * @date        2018/11/30 14:45
     * @version     1.0
     */
    /**
     * 阿里云短信发送平台
     * @author  yipeng.zhu@hand-china.com
     * @param templateCode 模板id
     * @param param 模板参数 json字符串
     * @param msgType 短信类型 可为空
     * @param phoneNumber 手机号
     * @return
     */
    String aliSendSms(String templateCode, String param, String msgType, String phoneNumber);


    /**
     * 腾讯云短信发送平台（单发）.
     * @author      yipeng.zhu@hand-china.com
     * @param templateCode 模板id
     * @param param  模板参数 json字符串 例如{"name":"用户","url":"url_msg","hint":"hint_msg"} 键不固定； 键值对个数要与申请模板的参数个数相同
     * @param msgType 短信类型 可为空
     * @param phoneNumber 手机号
     * @return
     */
    String tencentSendSms(String templateCode, String param, String msgType, String  phoneNumber);

    /**
     * 腾讯云短信发送平台(群发）群发时一次最多不要超过 200 个手机号
     * @author      yipeng.zhu@hand-china.com
     * @param templateCode 模板id
     * @param param        模板参数 json字符串 模板参数 json字符串 例如{"name":"用户","url":"url_msg","hint":"hint_msg"} 键不固定； 键值对个数要与申请模板的参数个数相同
     * @param phones       list集合 手机号
     * @param msgType
     * @return
     * @msgType 短信类型
     */
    String tencentMultiSendSms(String templateCode, String param, String msgType, List<String> phones);

}
